const bar = 'bar';

const getKey = (str) => 'key' + str;

const obj = {
  foo: 123,
  // bar: bar,
  bar, // es6中变量名与属性名一样可以省略：之后的东西
  // method1: function() {} 
  // 下面这种方式等价于上面这种就是普通函数不是箭头函数 注意this指向
  method1() {console.log(this);}, // ES6可以直接写成这种形式

  // es6允许[]的形式写一个变化的属性名 
  // [] 中可以写任意的表达式 表达式的执行结果会作为属性名
  // 例如getkey()的返回值'keyname'会作为属性名
  // 这种属性名被叫做 计算属性名
  [getKey('name')]: 'lanpang',
}
console.log(obj);